﻿using GN.Pay.Client.Request;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Notify
{
    /// <summary>
    /// 付款通知消息
    /// </summary>
    public class PayNotifyMessage : NotifyMessage
    {
        /// <summary>
        /// 实例化
        /// </summary>
        /// <param name="notifyMessages">通知消息</param>
        /// <param name="payConfigure">支付配置</param>
        public PayNotifyMessage(IDictionary<string, string>
            notifyMessages, IPayConfigure payConfigure) 
            : base(notifyMessages, payConfigure)
        {

        }

        /// <summary>
        /// 交易号
        /// </summary>
        public string TradeNo { get; set; }        

        /// <summary>
        /// 订单号
        /// </summary>
        public string OrderNo { get; set; }

        /// <summary>
        /// 会员编号
        /// </summary>
        public string MemberNo { get; set; }

        /// <summary>
        /// 订单时间
        /// </summary>
        public DateTime OrderTime { get; set; }

        /// <summary>
        /// 订单金额
        /// </summary>
        public decimal OrderMoney { get; set; }

        /// <summary>
        /// 商品标题   
        /// </summary>     
        public string Subject { get; set; }

        //商品详情  
        /// <summary>
        /// 商品详情     
        /// </summary>      
        public string Body { get; set; }

        //订单备注
        /// <summary>
        /// 订单备注    
        /// </summary> 
        public string Remark { get; set; }

        /// <summary>
        /// 扩展参数
        /// </summary>
        public string ExtraParam { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        public DateTime ApplyTime { get; set; }

        /// <summary>
        /// 付款时间 
        /// </summary> 
        public DateTime PayTime { get; set; }

        //付款费用  
        /// <summary>
        /// 付款费用  
        /// </summary>     
        public decimal PayFee { get; set; }

        //付款金额   
        /// <summary>
        /// 付款金额  
        /// </summary>     
        public decimal PayMoney { get; set; }

        /// <summary>
        /// 合计付款费用
        /// </summary>
        public decimal TotalPayFee { get; set; }

        /// <summary>
        /// 合计付款金额
        /// </summary>
        public decimal TotalPayMoney { get; set; }

        /// <summary>
        /// 合计付款次数
        /// </summary>
        public int TotalPayCount { get; set; }

        //帐簿时间
        /// <summary>
        /// 帐簿时间
        /// </summary>   
        public DateTime BookTime { get; set; }

        //交易状态
        /// <summary>
        /// 交易状态
        /// </summary> 
        public int TradeState { get; set; }
    }
}
